#pragma once

#include <string>
#include <cstddef> 
#include <iomanip>
#include <fstream>

#include <iostream>
#include <boost/archive/tmpdir.hpp>
#include <boost/archive/text_iarchive.hpp>
#include <boost/archive/text_oarchive.hpp>

#include <boost/serialization/base_object.hpp>
#include <boost/serialization/utility.hpp>

class FileSystem
{

public:

	// serialize Object using boost
	template<typename Object>
	void serialize(const Object* s, const char * filename);

	// deserialize Object using boost
	template<typename Object>
	void deserialize(Object* &s, const char * filename);
};